package pe.edu.unmsm.fisi.sysllabus.integracion.dao.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import org.springframework.stereotype.Repository;

import com.ibatis.sqlmap.client.SqlMapClient;

import pe.edu.unmsm.fisi.sysllabus.integracion.dao.CursoDAO;
import pe.edu.unmsm.fisi.sysllabus.negocio.modelo.dto.CursoDTO;
import pe.edu.unmsm.fisi.sysllabus.negocio.modelo.dto.VWGrupoCursoDTO;

@Repository
public class CursoDAOImpl extends SqlMapClientDaoSupport implements CursoDAO {

	@Autowired
	public CursoDAOImpl(SqlMapClient sql) {
		super.setSqlMapClient(sql);
	}

	public List<CursoDTO> listCursosxPeriodo(Integer idPlanEstPerAcad)
			throws DataAccessException {
		return (List<CursoDTO>)getSqlMapClientTemplate().queryForList(
				"Curso.listarCursosxPeriodos", idPlanEstPerAcad);
	}

	public CursoDTO getCurso(Integer idCurso) throws DataAccessException {
		return (CursoDTO)getSqlMapClientTemplate().queryForObject("Curso.getCurso", idCurso);
	}

	public void insertCurso(CursoDTO cursoEditar) throws DataAccessException {
		getSqlMapClientTemplate().insert("Curso.insertCurso", cursoEditar);
	}

	public void updateCurso(CursoDTO cursoEditar) throws DataAccessException {
		getSqlMapClientTemplate().update("Curso.updateCurso", cursoEditar);
	}

	@Override
	public List<VWGrupoCursoDTO> listGruposCursosxDocente(Integer idDocente) {
		return (List<VWGrupoCursoDTO>)getSqlMapClientTemplate().queryForList(
				"Curso.listGruposCursosxDocente", idDocente);
	}

}
